Field of the Invention
Embodiments of the present invention relate generally to robotics and, more specifically, to closed-loop robotic deposition of material.
Description of the Related Art
A three-dimensional (3D) printer is a device for fabricating real-world 3D objects based on simulated 3D models. A software application executing on a computer system typically interfaces with the 3D printer and coordinates all aspects of printing, including processing the 3D models and issuing printing commands to the 3D printer.
To fabricate a 3D object, the software application first processes the 3D model to generate a set of slices. Each “slice” is a different two-dimensional (2D) cross-section of the 3D model. The software application generates each slice by computing the intersection between a 2D plane and the 3D model at a specific depth along a vertical axis associated with the 3D model. A given slice thus indicates a set of X, Y, Z coordinates where the 3D model occupies space. For a particular X, Y, Z coordinate, the Z coordinate indicates the height of the slice, while the X and Y coordinates indicate a planar location within the slice. As a general matter, each slice in the set of slices is substantially horizontal and also substantially parallel to an adjacent slice. Taken as a whole, the set of slices represents the overall topology of the 3D object to be fabricated and indicates the volume of material needed to print the 3D object.
After generating the set of slices, the software application configures the 3D printer to iteratively deposit material based on the X, Y, Z coordinates included within each slice. Specifically, the 3D printer deposits material one slice at a time at the particular X, Y, Z coordinates where the 3D object occupies space. The material deposited across all X, Y, Z coordinates associated with a given slice forms a layer of material that resembles each slice. Material for each subsequent layer is deposited on top of a previous layer and substantially parallel to that previous layer. When the 3D printer has deposited material for all slices, the 3D object is complete. Although 3D printing has revolutionized fabrication of 3D objects, the fundamental approach described above suffers from two primary drawbacks.
First, conventional 3D printers and corresponding software applications operate in a strictly open-loop capacity and therefore are not able to respond to feedback. Consequently, conventional 3D printers and the associated software applications typically cannot tolerate faults, deviations, or other unforeseen events that may arise or be experienced during the printing process. For example, suppose a thermoplastics 3D printer were to deposit a bead of material that had a density that exceeded the expected density for the material. Because of the higher density, the bead would take longer than expected to harden, which would then cause one or more subsequent layers of material to be deposited incorrectly when printed. Accordingly, when the 3D object completed printing, the object would sag near the location of the bead and appear shorter than expected.
Second, conventional 3D printers are mechanically constrained and can deposit material only in substantially parallel, horizontal layers. Consequently, conventional 3D printers cannot fabricate 3D objects having certain types of geometry. For example, a conventional 3D printer would not be able to easily fabricate a 3D object with an extended overhanging portion, because the overhanging portion would lack physical support from any underlying layers of material.
As the foregoing illustrates, what is needed in the art are more effective techniques for fabricating 3D objects.